CC = gcc -g
# 输出工程名
TARGET_NAME = ufs.bin
# 输出目录
TARGET_DIR = ../build/bin/
# 中间文件目录
OUT_DIR = ../build/ufs/
# 链接公共选项
COMMON_LINK = -lpthread -lnetfilter_queue `mysql_config --libs`
LINK = 
# 编译公共选项
COMMON_COMPILE = 
# 文件列表
FILES = cfg_iptables.c checksum.c checkurl.c ip_pack_queue.c main.c 
FILES += prerouting.c validate_url.c config.c url_type_cache.c
FILES += url_ip_rule.c thread_context.c
# 对像列表
OBJS = $(subst .c,.o,$(FILES))

# 全部编译
all:  $(OBJS)
	make -C ../lib/ all;
	$(CC) $(COMMON_LINK) $(LINK) $(foreach n, $(^F), $(OUT_DIR)$(n)) $(TARGET_DIR)lib.a -o $(TARGET_DIR)$(TARGET_NAME)

main.o: main.c
	$(CC) -c $(COMMON_COMPILE) $< -o $(OUT_DIR)$@

cfg_iptables.o: cfg_iptables.c
	$(CC) -c $(COMMON_COMPILE) $< -o $(OUT_DIR)$@

checksum.o: checksum.c
	$(CC) -c $(COMMON_COMPILE) $< -o $(OUT_DIR)$@

checkurl.o: checkurl.c
	$(CC) -c $(COMMON_COMPILE) `mysql_config --cflags` $< -o $(OUT_DIR)$@

ip_pack_queue.o: ip_pack_queue.c
	$(CC) -c $(COMMON_COMPILE) $< -o $(OUT_DIR)$@

prerouting.o: prerouting.c
	$(CC) -c $(COMMON_COMPILE) `mysql_config --cflags` $< -o $(OUT_DIR)$@

validate_url.o: validate_url.c
	$(CC) -c $(COMMON_COMPILE) `mysql_config --cflags`  $< -o $(OUT_DIR)$@

config.o: config.c
	$(CC) -c $(COMMON_COMPILE) $< -o $(OUT_DIR)$@

url_type_cache.o: url_type_cache.c
	$(CC) -c $(COMMON_COMPILE) $< -o $(OUT_DIR)$@

url_ip_rule.o: url_ip_rule.c
	$(CC) -c $(COMMON_COMPLIE) $< -o $(OUT_DIR)$@

thread_context.o: thread_context.c
	$(CC) -c $(COMMON_COMPLIE) `mysql_config --cflags` $< -o $(OUT_DIR)$@

ready:
	mkdir -p $(OUT_DIR)
	mkdir -p $(TARGET_DIR)
	make -C ../lib/ ready

clean:
	rm -f $(OUT_DIR)*
	rm -f $(TARGET_DIR)$(TARGET_NAME)



